﻿using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
using UnityEngine.Events;
using UnityEngine.UI;

public class UIHelper  
{
    public static void DelayOneFrame(UnityAction action)
    {
        if (!EventSystem.current)
        {
            EventSystem.current =  new GameObject("EventSystem").AddComponent<EventSystem>();
        }
        EventSystem.current.StartCoroutine(DelayingOneFrame(action));
    }

    static IEnumerator DelayingOneFrame(UnityAction action)
    {
        yield return null;
        action();
    }



    static readonly int[] arrayOfFontSize =
                        {
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        4,
                        5,
                        6,
                        7,
                        8,
                        9,
                        10,
                        10,
                        11,
                        12,
                        13,
                        14,
                        15,
                        16,
                        16,
                        17,
                        18,
                        19,
                        20,
                        21,
                        22,
                        23,
                        23,
                        24,
                        25,
                        26,
                        27,
                        28,
                        29,
                        30,
                        30,
                        31,
                        32,
                        33,
                        34,
                        35,
                        36,
                        36,
                        37,
                        38,
                        39,
                        40,
                        41,
                        42,
                        43,
                        43,
                        44,
                        45,
                        46,
                        47,
                        48,
                        49,
                        50,
                        50,
                        51,
                        52,
                        53,
                        54,
                        55,
                        56,
                        56,
                        57,
                        58,
                        59,
                        60,
                        61,
                        62,
                        63,
                        63,
                        64,
                        65,
                        66,
                        67,
                        68,
                        69,
                        70,
                        70,
                        71,
                        72,
                        73,
                        74,
                        75,
                        76,
                        76,
                        77,
                        78,
                        79,
                        80,
                        81,
                        82,
                        83,
                        83,
                        84,
                        85,
                        86,
                        87,
                        88,
                        89,
                        90,
                        90,
                        91,
                        92,
                        93,
                        94,
                        95,
                        96,
                        96,
                        97,
                        98,
                        99,
                        100,
                        101,
                        102,
                        103,
                        103,
                        104,
                        105,
                        106,
                        107,
                        108,
                        109,
                        110,
                        110,
                        111,
                        112,
                        113,
                        114,
                        115,
                        116,
                        116,
                        117,
                        118,
                        119,
                        120,
                        121,
                        122,
                        123,
                        123,
                        124,
                        125,
                        126,
                        127,
                        128,
                        129,
                        130,
                        130,
                        131,
                        132,
                        133,
                        134,
                        135,
                        136,
                        136,
                        137,
                        138,
                        139,
                        140,
                        141,
                        142,
                        143,
                        143,
                        144,
                        145,
                        146,
                        147,
                        148,
                        149,
                        150,
                        150,
                        151,
                        152,
                        153,
                        154,
                        155,
                        156,
                        156,
                        157,
                        158,
                        159,
                        160,
                        161,
                        162,
                        163,
                        163,
                        164,
                        165,
                        166,
                        167,
                        168,
                        169,
                        170,
                        170,
                        171,
                        172,
                        173,
                        174,
                        175,
                        176,
                        176,
                        177,
                        178,
                        179,
                        180,
                        181,
                        182,
                        183,
                        183,
                        184,
                        185,
                        186,
                        187,
                        188,
                        189,
                        190,
                        190,
                        191,
                        192,
                        193,
                        194,
                        195,
                        196,
                        196,
                        197,
                        198,
                        199,
                        200,
                        201,
                        202,
                        203,
                        203,
                        204,
                        205,
                        206,
                        207,
                        208,
                        209,
                        210,
                        210,
                        211,
                        212,
                        213,
                        214,
                        215,
                        216,
                        216,
                        217,
                        218,
                        219,
                        220,
                        221,
                        222,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                        223,
                    };
    public static int GetRecommandFontSizeWithHeight(int height)
    {
        return arrayOfFontSize[height]; 
    }

    public static void SetRecommandFontSize(Text text)
    {
        text.fontSize = GetRecommandFontSizeWithHeight(Mathf.Abs((int)text.rectTransform.rect.height));
    }

}
